package com.shiliu.model.pojo;

import lombok.Data;

import java.util.HashMap;

/**
 * @description: 返回统一响应结果实体类
 * @author: shiliu
 * @created: 2019/12/18 10:42
 * @version: v1.0.0
 */
@Data
@SuppressWarnings("all")
public class ResponseResult extends HashMap<String,Object> {

    /**
     * 返回接口的成功提示信息
     */
    private String message;

    /**
     * 响应成功的状态码: 成功标志 10000,错误标志 99999,服务器错误标志 500,业务层异常 555,其他自行扩展
     */
    private Integer code;

    /**
     * 响应数据结果集
     */
    private Object data;

    /**
     * 响应成功消息,带数据
     * @param message
     * @param code
     * @param data
     * @return
     */
    public static ResponseResult ok(String message,Integer code,Object data){
        ResponseResult result = new ResponseResult();
        result.put("message",message);
        result.put("code",code);
        result.put("data",data);
        return result;
    }

    /**
     * 响应成功消息,不带数据
     * @param message
     * @param code
     * @return
     */
    public static ResponseResult ok(String message,Integer code){
        ResponseResult result = new ResponseResult();
        result.put("message",message);
        result.put("code",code);
        return result;
    }

    /**
     * 响应成功消息,默认
     * @return
     */
    public static ResponseResult ok(){
        return ok("操作成功!",10000);
    }

    /**
     * 响应失败消息,带数据
     * @param message
     * @param code
     * @param data
     * @return
     */
    public static ResponseResult error(String message,Integer code,Object data){
        ResponseResult result = new ResponseResult();
        result.put("message",message);
        result.put("code",code);
        result.put("data",data);
        return result;
    }

    /**
     * 响应失败消息,不带数据
     * @param message
     * @param code
     * @return
     */
    public static ResponseResult error(String message,Integer code){
        ResponseResult result = new ResponseResult();
        result.put("message",message);
        result.put("code",code);
        return result;
    }

    /**
     * 服务器错误消息
     * @param message
     * @return
     */
    public static ResponseResult error500(String message){
        return error(message,500);
    }

    /**
     *
     * 业务异常消息
     */
    public static ResponseResult error(String message){
        return error(message,555);
    }

    /**
     * 操作失败消息,默认
     * @return
     */
    public static ResponseResult error(){
        return error("操作失败!",99999);
    }
}
